Subject: Re: Feature Launcher status ( 2024/10/07 )
From: "Michael H. Siemaszko" <[email-masked]>
To: "Timothy Ward" <[email-masked]>
Date: Mon, 14 Oct 2024 13:01:15 +0000

Hi Tim,

Questions I have for recent iteration I posted as comments to recent PRs ( https://github.com/kentyou/feature-launcher-prototype/pull/26, https://github.com/kentyou/feature-launcher-prototype/pull/25#issuecomment-2409748426 ). You already answered all of those for https://github.com/kentyou/feature-launcher-prototype/pull/26 and I will proceed as per changes requested, where possible. If not, then we can think about re-wording the spec.

Regarding artifact repositories, section 160.4.2.4 mentions (...) Specifies an artifact repository URI and optionally one or more configuration properties for that artifact repository, such as those described in Remote Repositories on page 1381. This property may be repeated to add more than one artifact repository. (...), i.e. it refers to "Remote repositories", which made me think initially that it's only meant for such.

I also need clarification regarding your comment (...) This should be the raw feature JSON if it is to be successful, not the path to a file containing the feature JSON (...) - i.e. paths to JSON files are already passed in other integration tests; what do you mean by raw feature JSON, instead of path ?

Regards,

--
Michael H. Siemaszko

Ideas Into Software LLC

Telegram: mhsiemaszko

Email: [email-masked]
WWW: https://ideas.into.software/

GitHub: https://github.com/ideas-into-software/

LinkedIn: https://www.linkedin.com/in/mhsiemaszko/
Twitter: https://twitter.com/IntoSoftware/

On 10/7/24 14:58, Michael H. Siemaszko wrote:

Hi Tim,

All the questions I've had at this point in time I summarized in https://github.com/kentyou/feature-launcher-prototype/pull/24#issuecomment-2394886107 ( i.e. comment to most recent commit ). to which you answered few hours ago.

There are no further questions I have currently, and will proceed according to priorities you suggested.

Regards,

--
Michael H. Siemaszko

Ideas Into Software LLC

Telegram: mhsiemaszko

Email: [email-masked]
WWW: https://ideas.into.software/

GitHub: https://github.com/ideas-into-software/

LinkedIn: https://www.linkedin.com/in/mhsiemaszko/
Twitter: https://twitter.com/IntoSoftware/

On 9/30/24 14:56, Michael H. Siemaszko wrote:

Hi Tim,

Before our today's meeting, I am sending along list of questions I wanted to ask.

Status is known to you from last week's PR ( https://github.com/kentyou/feature-launcher-prototype/pull/23 ) and its review. This time, due to discrepancy between API assumptions and what came up during implementation, there are several items which need to be decided upon. Along with next items which I need to focus on ( related to Feature Runtime Service ), needed for demo project, I would need to take into consideration what we agree as next steps regarding implementation for items covered in https://github.com/kentyou/feature-launcher-prototype/pull/23. To summarize:

1) RE: Remote repository implementation as per "Maven Artifact Resolver" requirements, passing both local and remote repository to Feature Launcher / Feature Runtime Service and keeping both local and remote artifact repositories in sync;

2) RE: Adding `getArtifactPath(ID)` to `ArtifactRepository` interface and utilizing Java's built-in `URLClassLoader` vs using `getArtifact(ID)` which operates on `InputStream` directly, which requires either custom class loader or writing artifacts to temporary directory, despite the fact that they're already on disk in local repo;

3) RE: API defined for `FeatureExtensionHandler` vs calling `com.kentyou.featurelauncher.impl.FrameworkFactoryLocator.selectFrameworkFactory(FeatureExtension, List<ArtifactRepository>)` from `com.kentyou.featurelauncher.impl.FrameworkFactoryLocator.locateFrameworkFactory(Feature, List<ArtifactRepository>)`, which must receive `FrameworkFactory` not `Feature;

4) RE: Starting Configuration Admin using framework's bundle context';

5) RE: Cleaning storage area during integration tests;

Details of above mentioned are all in comments of recent PR ( https://github.com/kentyou/feature-launcher-prototype/pull/23 ), so I will not repeat the same here.

In addition, as we already discussed and are discussing changes to specification #160, I wanted to pass to you the following, which came up during technical analysis of specifications I needed to cover for this project, i.e.: some minor errors / omissions:

- "OSGi Compendium: Release 8.1 ( Draft, 2024 ): 160. Feature Launcher Service Specification"
https://www.eclipse.org/lists/osgi-dev/pdf4su7jtjIaR.pdf
@ p. 97 ( 160.3.3 Feature Decoration )
AS IS: (...) There are two types of decorator: (...) Feature Extension Handlers - called operations (...)
TO BE?: (...) There are two types of decorator: (...) Feature Extension Handlers - called for operations (...)

@ p. 112 - "The Feature Update Process" - should be marked as 160.5.2.3 and formatted as section header;

@ p. 115 - "160.6.1 osgi.service Capability" - "ArtifactRepositoryFactory" is cut off.. ( "ArtifactRepositoryFac" )

- "OSGi Compendium: Release 8.1 ( Draft, 2024 ): 159. Feature Service Specification"
https://www.eclipse.org/lists/osgi-dev/pdf4su7jtjIaR.pdf
@ p. 71 ( 159.1 Introduction )
AS IS: "Machine Readable - Features are easily be processed by tools."
TO BE?: "Machine Readable - Features can easily be processed by tools."

Regards,

--
Michael H. Siemaszko

Ideas Into Software LLC

Telegram: mhsiemaszko

Email: [email-masked]
WWW: https://ideas.into.software/

GitHub: https://github.com/ideas-into-software/

LinkedIn: https://www.linkedin.com/in/mhsiemaszko/
Twitter: https://twitter.com/IntoSoftware/

On 9/23/24 14:59, Michael H. Siemaszko wrote:

Hi Tim,

Before our today's meeting, I am sending along list of questions I wanted to ask.

Status is known to you from last week's PR, its review, and subsequent fixes applied. As mentioned, I am focusing the next items, to make it on time with the demo project.

Questions I have are the following:

1) Regarding priorities in implementation - I deliberately first chose ( and implemented or am in the process of implementing ) those functionalities which are needed for demo project, as per your outline of what that project is supposed to demonstrate, i.e.:

- Launching framework
* Launching a framework with a "simple" feature, containing bundles and configurations, with no start levels and no framework selection
* Launching a framework with a feature which selects a framework implementation, with no start levels

- Installing features at runtime
* Installing a "simple" feature, with no start levels
* Installing a second feature with overlapping bundles

- Updating features at runtime
* Simple update showing version changes in some of the bundles

- Removing features
* A simple uninstallation case

Please confirm and supplement if necessary, as that's how priorities are set currently.

2) Continuing re: demo project - aside from your outline of what that project is supposed to demonstrate, how is user supposed to interact ? I.e. via GUI ? Via CLI ? If CLI, how is "Add the Command line client" ( https://github.com/kentyou/feature-launcher-prototype/issues/21 ) related to this ?

3) Please clarify regarding "160.4.3.2: #1. If any provider specific configuration has been given to the Feature Launcher implementation then this should be used to identify the framework" - this is not clear to me, the other items in that section are clear enough; relevant class is `com.kentyou.featurelauncher.impl.util.FrameworkFactoryLocator`

4) Custom exceptions instead of re-throwing as RunTimeException - e.g. @ `com.kentyou.featurelauncher.impl.repository.LocalArtifactRepositoryImpl` - API / specification does not define custom exception in case of exception thrown during `com.kentyou.featurelauncher.impl.repository.LocalArtifactRepositoryImpl.getArtifact(ID)` operation; should there such ?

5) Should CI/CD be set up for this project ? If yes, should GitHub actions be used or integrate with some other build server ?

Regards,

--
Michael H. Siemaszko

Ideas Into Software LLC

Telegram: mhsiemaszko

Email: [email-masked]
WWW: https://ideas.into.software/

GitHub: https://github.com/ideas-into-software/

LinkedIn: https://www.linkedin.com/in/mhsiemaszko/
Twitter: https://twitter.com/IntoSoftware/

On 9/18/24 22:20, Timothy Ward wrote:

A call to report status, highlight any blocking issues, and provide feedback on the specification

________________________________________________________________________________

Microsoft Teams Need help?

Join the meeting now

Meeting ID: 368 661 349 750

Passcode: VWT4Yy

For organisers: Meeting options

________________________________________________________________________________